home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Turnbull China Bikeride
/
Turnbull China Bikeride - Disc 2.iso
/
STUTTGART
/
FROMUTS
/
BOOTUP
/
!Boot
/
Boot
/
!OpenDir
/
Code
< prev
next >
Wrap
Text File
|
1991-07-01
|
7KB
|
279 lines
REM >!RunImage
REM !OpenDir V1.0
REM © Jeremy Lee 29-6-91
REM Freeware.. Share and Enjoy!
ON ERROR SYS "Wimp_ReportError",FNerrblk(ERR,REPORT$),1,"OpenDir":SYS "Wimp_CloseDown":END
DIM block% &100 : REM Misc. block
DIM errblock% &100 : REM Error block
DIM iconblock% 100 : REM Icon block
DIM name$(7) : REM List of names
quitted%=FALSE : REM And we haven't quitted
windowopen%=FALSE : REM Window isn't open initially
SYS "Wimp_Initialise",200,&4B534154,"OpenDir"
PROCloadsprites : REM Load sprites into memory
PROCinstallicon : REM Install icon on desktop
PROCloadtemplates : REM Load templates in
PROCbuildmenus : REM Build menus
PROCicondata : REM Clear the Icon Data
PROCclearlist
REPEAT
SYS "Wimp_Poll",%100011,block% TO reason%
CASE reason% OF
WHEN 2 : PROCopenwindow
WHEN 3 : PROCcloseewindow
WHEN 4 : SYS "Wimp_SetCaretPosition",-1
WHEN 6 : PROCprocess_mouse
WHEN 7 : PROCdecode_drag
WHEN 9 : PROCprocess_menu
WHEN 17,18 : PROCprocess_message
ENDCASE
UNTIL quitted%
SYS "Wimp_CloseDown"
END
DEFPROCloadtemplates
DIM mainblock% 3000
DIM infoblock% 500
DIM saveblock% 500
maxws%=3000
DIM ws% maxws%
wsend%=ws%+maxws%
ows%=ws%
SYS "Wimp_OpenTemplate",,"<Obey$Dir>.Templates"
SYS "Wimp_LoadTemplate",,mainblock%,ws%,wsend%,-1,"Main",0 TO ,,ws%
SYS "Wimp_CreateWindow",,mainblock% TO mainwindow%
SYS "Wimp_LoadTemplate",,infoblock%,ws%,wsend%,-1,"Info",0 TO ,,ws%
SYS "Wimp_CreateWindow",,infoblock% TO infowindow%
SYS "Wimp_LoadTemplate",,saveblock%,ws%,wsend%,-1,"Save",0 TO ,,ws%
SYS "Wimp_CreateWindow",,saveblock% TO savewindow%
SYS "Wimp_CloseTemplate"
ENDPROC
DEFPROCfirstopen
IF windowopen% ENDPROC
!block%=mainwindow%
block%!4=!mainblock%
block%!8=mainblock%!4
block%!12=mainblock%!8
block%!16=mainblock%!12
block%!28=-1
PROCopenwindow
ENDPROC
DEFPROCopenwindow
SYS "Wimp_OpenWindow",,block%
windowopen%=TRUE
ENDPROC
DEFPROCcloseewindow
SYS "Wimp_CloseWindow",,block%
windowopen%=FALSE
ENDPROC
DEFPROCinstallicon
!iconblock%=-1
iconblock%!4=0
iconblock%!8=0
iconblock%!12=100
iconblock%!16=100
iconblock%!20=&3002
$(iconblock%+24)="!opendir":SYS"Wimp_CreateIcon",,iconblock% TO iconbar%
ENDPROC
DEFPROCbuildmenus
DIM mainmenu% 28+3*24
$mainmenu% = "Menu"
mainmenu%?12 = 7
mainmenu%?13 = 2
mainmenu%?14 = 7
mainmenu%?15 = 0
mainmenu%!16 = LEN"XXXXX"*16+12
mainmenu%!20 = 44
mainmenu%!24 = 0
mainmenu%!28 = 0
mainmenu%!32 = infowindow%
mainmenu%!36 = &07000001
$(mainmenu%+40)="Info"
mainmenu%!52 = 0
mainmenu%!56 = savewindow%
mainmenu%!60 = &07000001
$(mainmenu%+64)="Save"
mainmenu%!76 = &80
mainmenu%!80 = -1
mainmenu%!84 = &07000001
$(mainmenu%+88)="Quit"
ENDPROC
DEFFNerrblk(err%,report$)
!errblock%=err%
$(errblock%+4)=report$+" at line "+STR$ERL
errblock%?(4+LEN$(errblock%+4))=0
=errblock%
DEFPROCprocess_mouse
CASE block%!12 OF
WHEN -2
IF block%!16=iconbar%
CASE block%!8 OF
WHEN 1,4 : PROCfirstopen
WHEN 2 : SYS "Wimp_CreateMenu",,mainmenu%,!block%-mainmenu%!16/2-24,186
ENDCASE
ENDIF
WHEN mainwindow%
CASE block%!8 OF
WHEN 1,4
CASE block%!16 OF
WHEN 0 : PROCdragicon(!block%,block%!4,mainwindow%,0):drag%=1
WHEN 1 : PROCclearlist:SYS"Wimp_ForceRedraw",mainwindow%,-1000,-1000,1000,1000
ENDCASE
WHEN 2 : SYS "Wimp_CreateMenu",,mainmenu%,!block%-mainmenu%!16/2-24,block%!4
ENDCASE
WHEN savewindow%
IF block%!16=0 THEN PROCdragicon(!block%,block%!4,savewindow%,0):drag%=2
ENDCASE
ENDPROC
DEFPROCprocess_menu
IF !block% = 2 THEN quitted%=TRUE
ENDPROC
DEFPROCprocess_message
CASE block%!16 OF
WHEN 0 : quitted%=TRUE
WHEN 2 : name$=FNstring(block%+44)
CASE drag% OF
WHEN 1
PROCaddname(name$)
WHEN 2
PROCsave(name$)
ENDCASE
WHEN 3 : file$=FNstring(block%+44):PROCdragged_file
ENDCASE
ENDPROC
DEFFNstring(from%)
LOCAL n$:WHILE?from%:n$+=CHR$?from%:from%+=1:ENDWHILE
=n$
DEFPROCloadsprites
*Iconsprites <Obey$Dir>.Sprites
ENDPROC
DEFPROCaltericon(icon%,text$)
$(iconptr%(icon%))=text$
name$(icon%)=text$
ENDPROC
DEFPROCicondata
DIM iconptr%(7)
ptr%=ows%
looking=ASC("1"):WHILE ?ptr%<>looking:ptr%+=1:ENDWHILE
FOR x%=0TO7
iconptr%(x%)=ptr%+x%*255
NEXT
ENDPROC
DEFPROCclearlist
FORx%=0TO7
PROCaltericon(x%,"")
name$(x%)=""
NEXT
nextname%=0
ENDPROC
DEFPROCdragicon(mousex%,mousey%,handle%,icon%)
LOCAL bx%,by%,ix0%,ix1%,iy0%,iy1%
block%!0 = 4
block%!4 = 5
block%!8 = 11
block%!12= 12
block%!16= -1
SYS"OS_ReadVduVariables",block%,block%+20
dx%=1<<(block%!20)
dy%=1<<(block%!24)
scrx1%=(block%!28+1)*dx%
scry1%=(block%!32+1)*dy%
savewind%=handle%
!block%=handle%:SYS"Wimp_GetWindowState",,block%
bx%=block%!4 - block%!20
by%=block%!16 - block%!24
!block%=handle%:block%!4=icon%:SYS"Wimp_GetIconState",,block%
ix0%=block%!8
iy0%=block%!12
ix1%=block%!16
iy1%=block%!20
!block%=handle%
block%!4=5
block%!8=bx%+ix0%
block%!12=by%+iy0%
block%!16=bx%+ix1%
block%!20=by%+iy1%
block%!24=block%!8-mousex%
block%!28=block%!12-mousey%
block%!32=scrx1%+block%!16-mousex%
block%!36=scry1%+block%!20-mousey%
SYS"Wimp_DragBox",,block%
ENDPROC
DEFPROCdecode_drag
LOCAL window%,icon%
SYS "Wimp_GetPointerInfo",,block%:window%=block%!12:icon%=block%!16
IF window% <> -1 THEN
block%!12=0:block%!16=1:block%!20=window%:block%!24=icon%:block%!28=block%!0:block%!32=block%!4
block%!36=1:block%!40=0:$(block%+44)="x"+CHR$0:block%!0=56
SYS "Wimp_SendMessage",17,block%,window%,icon%
ENDIF
ENDPROC
DEFPROCaddname(name$)
IF RIGHT$(name$,2)=".x" THEN
name$=LEFT$(name$,LEN(name$)-2)
IF nextname%<8 THEN
name$(nextname%)=name$
PROCaltericon(nextname%,name$)
nextname%+=1
IF windowopen% THEN
SYS"Wimp_ForceRedraw",mainwindow%,-1000,-1000,1000,1000
ENDIF
ENDIF
ENDIF
ENDPROC
DEFPROCsave(where$)
IF RIGHT$(where$,2)=".x" THEN where$=LEFT$(where$,LEN(where$)-1)
LOCAL name$
block%!0=savewindow%
block%!4=1
SYS"Wimp_GetIconState",,block%
name$=$(block%+28)
fullpath$=where$+name$
IF where$<>"<Wimp$Scrap>" THEN
channel%=OPENOUT(fullpath$)
FOR x%=0TO7
IF name$(x%)<>"" THEN
BPUT# channel%,"Set Alias$Temp Filer_OpenDir "+name$(x%)
BPUT# channel%,13
BPUT# channel%,"Temp"
BPUT# channel%,13
ENDIF
NEXT
CLOSE# channel%
OSCLI"SetType "+fullpath$+" 101"
ENDIF
block%!0=savewindow%
SYS"Wimp_CloseWindow",,block%
ENDPROC
DEFPROCdragged_file
ENDPROC